Systems and methods for array level terrain based backtracking

ABSTRACT

A system and method for array level terrain based backtracking includes a tracker configured to collect solar irradiance and attached to a rotational mechanism for changing a plane of the tracker and a controller in communication with a rotational mechanism. The controller is programmed to determine a position of the sun at a first specific point in time, retrieve height information, execute a shadow model based on the retrieved height information and the position of the sun, determine a first angle for the tracker; collect an angle for each tracker in a plurality of trackers in an array; adjust the first angle based on executing the shadow model with the first angle and the plurality of angles associated with the plurality of trackers; transmit instructions to the rotational mechanism to change the plane of the tracker to the adjusted first angle.

RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.17/352,078, filed Jun. 18, 2021, entitled “SYSTEMS AND METHODS FOR ARRAYLEVEL TERRAIN BASED BACKTRACKING,” which is a Continuation of U.S.patent application Ser. No. 17/019,806, filed Sep. 14, 2020, entitled“SYSTEMS AND METHODS FOR ARRAY LEVEL TERRAIN BASED BACKTRACKING,” issuedas U.S. Pat. No. 11,108,353 on Aug. 31, 2021, which is acontinuation-in-part of U.S. patent application Ser. No. 16/928,679,filed Jul. 14, 2020, entitled “SYSTEMS AND METHODS FOR TERRAIN BASEDBACKTRACKING FOR SOLAR TRACKERS,” issued as U.S. Pat. No. 11,139,775 onOct. 5, 2021, the entire contents and disclosure of which are herebyincorporated by reference herein in its entirety.

BACKGROUND

The field relates generally to tracking systems for adjusting solartrackers and, more specifically, to determining angles for solartrackers to maximize production and reduce shadows based on the terrainat the location of the solar tracker.

Recently, the development of a variety of energy substitution such as, aclean energy source and environment friendly energy are emerging toreplace fossil fuels due to the shortage of fossil fuels, environmentalcontamination issues, etc. One of the solutions is to use solar energy.This type of solar energy use can be categorized into three types; oneof the types converts solar energy to heat energy and uses it forheating or boiling water. The converted heat energy can also be used tooperate a generator to generate electric energy. The second type is usedto condense sunlight and induce it into fiber optics which is then usedfor lighting. The third type is to directly convert light energy of thesun to electric energy using solar cells.

Solar trackers are groups of collection devices, such as solar modules.Some solar trackers are configured to follow the path of the sun tominimize the angle of incidence between incoming sunlight and the solartracker to maximize the solar energy collected. To face the suncorrectly, a program or device to track the sun is necessary. This iscalled a sunlight tracking system or tracking system. The method totrack the sunlight can generally be categorized as a method of using asensor or a method of using a program.

In terms of a power generation system using solar energy, a large numberof solar trackers are generally installed on a vast area of flat land tokeep modules of solar trackers from overlapping. But, when multiplesolar trackers are installed, shade can occur due to interferencebetween the solar trackers, and sunlight cannot be fully absorbed whenthe sun does not arise above a certain angle or due to weatherconditions. Furthermore, solar trackers are grouped into arrays oftrackers, where multiple solar trackers are positioned from East to Westalong the terrain.

In addition, some solar trackers are installed in areas with changes inelevation between solar trackers. In these situations, significantshading from other trackers can occur. When the sun is at certainangles, such as just after sunrise or just before sunset, a solartracker can interfere with the solar collection of a solar trackermultiple rows away.

BRIEF DESCRIPTION

In one aspect, a system is provided. The system includes a first trackerattached to a rotational mechanism for changing a plane of the firsttracker. The first tracker is configured to collect solar irradiance.The first tracker is in an array including a plurality of trackers. Thesystem also includes a controller in communication with the rotationalmechanism. The controller includes at least one processor incommunication with at least one memory device. Each tracker of theplurality of trackers is associated with a controller. The at least oneprocessor is programmed to store, in the at least one memory device, aplurality of positional information and a shadow model for determiningplacement of shadows based on positions of objects relative to the sun.The at least one processor is also programmed to determine a position ofthe sun at a first specific point in time. The at least one processor isfurther programmed to retrieve, from the at least one memory device,height information for the plurality of trackers in the array. A firstheight of the first tracker is different than a second height of asecond tracker of the plurality of trackers in the array. In addition,the at least one processor is programmed to execute the shadow modelbased on the retrieved height information and the position of the sun.Moreover, the at least one processor is programmed to determine a firstangle for the first tracker based on the executed shadow model.Furthermore, the at least one processor is programmed to collect anangle for each tracker in the plurality of trackers in the array. Inaddition, the at least one processor is also programmed to adjust thefirst angle based on executing the shadow model with the first angle andthe plurality of angles associated with the plurality of trackers in thearray. In addition, the at least one processor is further programmed totransmit instructions to the rotational mechanism to change the plane ofthe tracker to the adjusted first angle.

In another aspect, a method for operating a first tracker in an array isprovided. The method is implemented by at least one processor incommunication with at least one memory device. The method includesstoring, in the at least one memory device, a plurality of positionalinformation and a shadow model for determining placement of shadowsbased on positions of objects relative to the sun. The method alsoincludes determining a position of the sun at a first specific point intime. The method further includes retrieving, from the at least onememory device, height information for the first tracker and a pluralityof trackers in the array. A first height of the first tracker isdifferent than a second height of a second tracker of the plurality oftrackers in the array. In addition, the method includes executing theshadow model based on the retrieved height information and the positionof the sun. Moreover, the method includes determining a first angle forthe first tracker based on the executed shadow model. Furthermore, themethod includes collecting an angle for each tracker in the plurality oftrackers in the array. In addition, the method also includes adjustingthe first angle based on executing the shadow model with the first angleand the plurality of angles associated with the plurality of trackers inthe array. In addition, the method further includes transmittinginstructions to change a plane of the first tracker to the adjustedfirst angle.

In a further aspect, a controller for a first tracker in an array isprovided. The controller includes at least one processor incommunication with at least one memory device. The at least oneprocessor is programmed to store, in the at least one memory device, aplurality of positional information and a shadow model for determiningplacement of shadows based on positions of objects relative to the sun.The at least one processor is also programmed to determine a position ofthe sun at a first specific point in time. The at least one processor isfurther programmed to retrieve, from the at least one memory device,height information for the first tracker and a plurality of trackers inthe array. A first height of the first tracker is different than asecond height of a second tracker of the plurality of trackers in thearray. In addition, the at least one processor is programmed to executethe shadow model based on the retrieved height information and theposition of the sun. Moreover, the at least one processor is programmedto determine a first angle for the first tracker based on the executedshadow model. Furthermore, the at least one processor is programmed tocollect an angle for each tracker in the plurality of trackers in thearray. In addition, the at least one processor is also programmed toadjust the first angle based on executing the shadow model with thefirst angle and the plurality of angles associated with the plurality oftrackers in the array. In addition, the at least one processor isfurther programmed to transmit instructions to a rotational mechanismconnected to the first tracker to change a plane of the first tracker tothe adjusted first angle.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of a solar module of a solar tracker.

FIG. 2 is a cross-sectional view of the solar module taken along lineA-A of FIG. 1 .

FIG. 3 is a side view of a solar tracker in accordance with at least oneembodiment.

FIG. 4 is an overhead view of an example solar array at a solar site.

FIG. 5 illustrates a plurality of solar trackers shown in FIG. 3 onuneven terrain during backtracking.

FIG. 6 illustrates shadows cast by an array of solar trackers such asthose shown in FIG. 5 .

FIG. 7 illustrates another plurality of solar trackers in an array onuneven terrain during backtracking.

FIG. 8 illustrates an example graph of the angles for the plane of thetracker shown in FIG. 3 over the period of one day.

FIG. 9 illustrates another graph of the angles for the plane of thetracker shown in FIG. 3 over the period of one day.

FIG. 10 illustrates a process for performing backtracking on a singletracker.

FIG. 11 illustrates a process for performing backtracking on the arrayof trackers shown in FIGS. 6 and 7 .

FIG. 12 illustrates an example configuration of a user computer deviceused in the solar site shown in FIG. 4 , in accordance with one exampleof the present disclosure.

Corresponding reference characters indicate corresponding partsthroughout the drawings.

DETAILED DESCRIPTION

The systems and processes are not limited to the specific embodimentsdescribed herein. In addition, components of each system and eachprocess can be practiced independent and separate from other componentsand processes described herein. Each component and process also can beused in combination with other assembly packages and processes.

FIG. 1 is a perspective view of a solar module 100 of a solar tracker.FIG. 2 is a cross-sectional view of the solar module 100 (shown in FIG.1 ) taken along line A-A of FIG. 1 .

The module 100 includes a top surface 106 and a bottom surface 108.Edges 110 extend between the top surface 106 and the bottom surface 108.Module 100 is rectangular shaped. In other embodiments, module 100 mayhave any shape that allows the module 100 to function as describedherein.

A frame 104 circumscribes and supports the module 100. The frame 104 iscoupled to the module 100, for example as shown in FIG. 2 . The frame104 protects the edges 110 of the module 100. The frame 104 includes anouter surface 112 spaced from one or more layers 116 of the module andan inner surface 114 adjacent to the one or more layers 116. The outersurface 112 is spaced from, and substantially parallel to, the innersurface 114. The frame 104 may be made of any suitable materialproviding sufficient rigidity including, for example, metal or metalalloys, plastic, fiberglass, carbon fiber, and other material capable ofsupporting the module 100 as described herein. In some embodiments, theframe is made of aluminum, such as 6000 series anodized aluminum.

In the illustrated embodiment, the module 100 is a photovoltaic module.The module 100 has a laminate structure that includes a plurality oflayers 116. Layers 116 include, for example, glass layers,non-reflective layers, electrical connection layers, n-type siliconlayers, p-type silicon layers, backing layers, and combinations thereof.In other embodiments, the module 100 may have more or fewer layers 116than shown in FIG. 2 , including only one layer 116. The photovoltaicmodule 100 may include a plurality of photovoltaic modules with eachmodule made of photovoltaic cells.

In some embodiments, the module 100 is a thermal collector that heats afluid such as water. In such embodiments, the module 100 may includetubes of fluid which are heated by solar radiation. While the presentdisclosure may describe and show a photovoltaic module, the principlesdisclosed herein are also applicable to a solar module 100 configured asa thermal collector or sunlight condenser unless stated otherwise.

FIG. 3 is a side view of a tracker 300 in accordance with at least oneembodiment. Tracker 300 includes a plurality of modules 100 (shown inFIG. 1 ). The tracker 300 (also known as a tracker row) controls theposition of a plurality of modules 100. The tracker 300 includes supportcolumns 305 and one or more rotational mechanisms 310. The rotationalmechanism 310 is configured to rotate the tracker 300 to track the sun315 as described herein. In the example, the rotational mechanism 310rotates the tracker 300 along a single axis from −60 degrees to 60degrees, where 0 degrees is horizontal. Rotation mechanism 310 can beany rotational mechanism 310 able to move the tracker 300 between anglesas described herein. The rotational mechanism 310 can include, but isnot limited to, linear actuators and slew drives.

The tracker 300 can include a single module or a plurality of modules100. The tracker 300 can also include an entire row of modules 100positioned side-by-side. Or any other combination of modules 100 thatallows the tracker 300 to work as described herein.

FIG. 4 is an overhead view of an example solar array 400 at a solar site405. The solar array 400 includes a plurality of trackers 300, whereeach tracker 300 includes a plurality of modules 100 positioned in arow. The solar site 405 includes a plurality of solar arrays 400. Thetrackers 300 are configured to rotate so that the top surface 106 (shownin FIG. 2 ) of each tracker is perpendicular to the angle of the sun 315(shown in FIG. 3 ).

The position of each tracker 300 is controlled by a row controller 410.The row controller 410 calculates the angle for the modules 100 in thetracker 300 and instructs a rotational mechanism 310 (shown in FIG. 3 )to move the tracker 300 to that angle. The rotational mechanism 310 canbe capable of moving a tracker 300, which can consist of a single module100, an entire row of modules 100, or a portion of a row of modules 100.A tracker 300 can include multiple rotational mechanisms 310. A singlerotational mechanism 310 can adjust multiple trackers 300.

The row controller 410 of this embodiment is in communication with asite controller 415. The site controller 415 can provide information tothe row controller 410 such as, but not limited to, weather information,forecast information, sun position information, and other information toallow the row controller 410 to operate as described herein. In someembodiment, site controller 415 may only be an array zone controller,which controls and sends information to a plurality of row controllers410 in an array 400, but is only in communication with a portion of therow controllers at the site 405.

The row controller 410 and/or the site controller 415 are incommunication with one or more sensors 420 located at the solar site405. The one or more sensors 420 measure conditions at the solar site405.

The row controller 410 is programmed to determine the position of thesun and the corresponding angle of the trackers 300 in this embodiment.For each tracker 300, the row controller 410 determines the sun'sposition with respect to the center of the tracker 300. The rowcontroller 410 stores the latitude, longitude, and altitude of thetracker 300. In at least one embodiment, the row controller 410calculates the current position of the sun using the National RenewableEnergy Lab's (NREL) equations to calculate the sun's position at anygiven point in time. In alternative embodiments, the row controller 410is in communication with one or more sensors 420 capable of determiningthe sun's current position. The row controller 410 is programmed tomaximize the energy yield for the trackers 300 by minimizing the anglebetween the sun vector and the normal vector of the plane of the tracker300.

The row controller 410 instructs the rotational mechanism 310 to adjustthe plane of the tracker 300, so that the plane of the tracker 300 doesnot deviate by more than +/−1 degree while tracking the sun. In someembodiments, the row controller 410 provides a step size to the angle ofthe plane of the tracker 300 of two degrees. This means that the rowcontroller 410 adjusts the plane of the tracker 300 for every twodegrees the sun moves. The row controller 410 can adjust the angle ofthe plane of the tracker 300 by any amount, limited by the mechanicaltolerances of the tracker 300 and the rotational mechanism 310. In someembodiments, the row controller 410 instructs the rotation mechanisms310 to adjust each tracker 300 individually, where trackers 300 in thesame row may be adjusted to different angles. In other embodiments, therow controller 410 transmits instructions to the trackers 300 in asingle row that all of the trackers 300 in that row should be adjustedto the same angle. In some further embodiments, the row controller 410may transmit instructions to trackers 300 in different rows. Forexample, a row controller 410 may control trackers 300 in two adjacentrows.

FIG. 5 illustrates a plurality of trackers 300 (shown in FIG. 3 ) onuneven terrain during backtracking. During the early hours and latehours of the day, the sun 315 (shown in FIG. 3 ) is low on the horizon.This can cause shadows to appear on various trackers 300 because of theangle required for the plane of the tracker 300 to be normal to theangle of the sun 315.

Backtracking is an algorithm for calculating the optimum angles for theplurality of trackers 300 to prevent shadows during tracking. In theillustrated embodiment, the backtracking algorithm is executed by therow controller 410 (shown in FIG. 4 ). The backtracking algorithmconsiders eastward and westward terrain slope to determine the angle forthe tracker 300 for shadow-free tracking. The backtracking algorithmuses a mathematical model of the tracker 300 to calculate and update thebacktracking angles for every two degrees of the sun's movement. Whilethe predetermined threshold is described as two degrees herein, anypredetermined threshold can be used depending on how often the usersdesire the tracker's angle to be updated.

For calculating the optimal angle, the backtracking algorithm takes intoconsideration the width of the tracker 300, the distance betweenadjacent rows of trackers 300, the difference in elevation between thedifferent rows of trackers 300, the current angle of the tracker 300,and the angle of the sun 315. The row controller 410 calculates thebacktracking angles for the trackers 300 its row. The row controller 410uses the backtracking algorithm to maximize the energy yield for thetrackers 300 by minimizing the angle between the sun vector and thenormal vector of the plane of the tracker 300 while also minimizing theshadows cast by the adjacent trackers 300.

More specifically, FIG. 5 illustrates five different trackers A-E 505,510, 515, 520, and 525. Each of the five trackers A-E 505, 510, 515,520, and 525 is associated with a different row. For this example, eachof the five trackers A-E 505, 510, 515, 520, and 525 is currently facingin an easterly direction towards the sun 315 (shown in FIG. 3 ). Inaddition, each of the five trackers A-E 505, 510, 515, 520, and 525 arepositioned at a different elevation. The different elevation could causeshading issues at certain times of day.

To account for the terrain, the row controller 410 executes a terrainbased backtracking algorithm to determine an optimal angle for thetracker(s) 300 in its row based on the terrain information for the rowin question and the adjacent rows to the east and the west of the row inquestion.

During morning backtracking, the row controller 410 sets the angle ofthe tracker 300 so that the shadow from an eastern, adjacent tracker 300will come as close as possible to the lower edge of the tracker 300 inquestion as possible. This is because in the morning, the sun 315 isrising, so the gap between the shadow and the tracker 300 increases overtime. Every time the row controller 410 adjusts the angle of the tracker300, the shadow moves back to as close as possible to the bottom edge ofthe tracker 300.

During afternoon backtracking, the row controller 410 sets the angle ofthe tracker 300 so that the shadow from a western, adjacent tracker 300has a gap between the shadow cast by the adjacent tracker 300 and thebottom of the tracker 300 in question. Since the sun 315 is setting, thegap will decrease over time. The goal is to have the gap disappear bythe time the sun 315 has moved enough that the row controller 410 needsto move the tracker 300 again.

The row controller 410 stores the terrain information for each rowincluding the top-of-post heights of the trackers 300 in each row. Therow controller 410 also stores the size of the tracker 300 and thespacing between the rows, including any variable spacing between therows. Other information stored by the row controller 410 includes, butis not limited to, the latitude, longitude, and altitude of the site,the current time, and the current sun position based on the exact date,time, latitude, longitude, and altitude. The row controller 410 usesthis information to model shadows to compute the exact shadow regionsthat will be made by the current row and the adjacent rows. The rowcontroller 410 determines the plane of the array for each of theadjacent rows. Then the row controller 410 uses the determined planes ofarray for the adjacent rows to determine the plane of array for thecurrent row. Each of the planes of arrays are calculated to maximize theamount of solar irradiance collected while minimizing the amount ofshadow received and projected onto other trackers 300.

For example, tracker C 515 is associated with row controller C 530,which is similar to row controller 410. Row controller C 530 stores thetop of post heights of and the distances between the trackers B, C, andD 510, 515, and 520. Based on the relative post heights of the threetrackers B, C, and D 510, 515, and 520, the distance between theircorresponding rows, the sizes of the three trackers B, C, & D 510, 515,and 520, the current position of the sun 315 based on the current timeand the physical location of the three trackers B, C, and D 510, 515,and 520, and one or more future positions of the sun 315, the rowcontroller C 530 is able to determine an optimal angle to set tracker C515 to and instructs the associated rotational mechanism 310 (shown inFIG. 3 ) to set the tracker to that optimal angle. In at least oneembodiment, the row controller 410 determines the angles for the planeof arrays for trackers B, C, and D 510, 515, and 520 as if the anglesfor all three are the same as each other.

All of the trackers 300 in a single row are at the same elevation inthis embodiment. In alternative embodiments, some of the trackers 300 ina row are at different elevations. In these alternative embodiments, thecorresponding row controller 410 calculates the angles for the trackers300 either individually or in groups by elevation. This can includecalculating the angles in groups based on the varying elevations of theadjacent rows. In some embodiments with varying elevations, the rowcontroller 410 can use the average elevation, the lowest elevation,and/or a combination thereof to calculate the angle for the tracker 300.

FIG. 6 illustrates shadows cast by an array 600 of solar trackers 300(shown in FIG. 3 ) such as those shown in FIG. 5 .

Array 600 includes a plurality of trackers 605-640. FIG. 6 alsoillustrates a plurality of shadows 650-685 cast by the plurality oftrackers 605-640.

As shown in FIG. 6 , a shadow 650 cast by a tracker 605 may affect theperformance of tracker 620 that is a distance away from the castingtracker 605. Accordingly, the row controller 410 needs to account forthe shadows that affect trackers one or more rows away. This may occurduring periods where the sun is particularly low in the horizon, such asearly morning or late afternoon. This also may occur when the differenttrackers 605-640 are at different altitudes based on their terrain. Forexample, a tracker 300 may be in a gully or depression in the terrainand be more susceptible to being blocked by higher altitude trackers300.

FIG. 7 illustrates another plurality of solar trackers 300 (shown inFIG. 3 ) in an array 700 on uneven terrain during backtracking. Duringthe early hours and late hours of the day, the sun 315 (shown in FIG. 3) is low on the horizon. This can cause shadows to appear on varioustrackers 300 because of the angle required for the plane of the tracker300 to be normal to the angle of the sun 315.

Backtracking is an algorithm for calculating the optimum angles for theplurality of trackers 300 to prevent shadows during tracking. However,in some cases the sun 315 is at such an angle that shadows from atracker 300 impact a tracker multiple rows away from the tracker 300casting the shadow. To mitigate this issue the row controllers 410(shown in FIG. 4 ) can communicate to coordinate to maximize the amountof solar irradiance collected for the array 700 as a whole.

In the array 700 shown in FIG. 7 , there are five rows of trackers705-725, each with their own row controller 730-750. In someembodiments, the row controllers 730-750 are in communication with anarray controller 755.

The backtracking algorithm is executed by each row controller 730-750.The backtracking algorithm considers eastward and westward terrain slopeto determine the angle for the tracker 300 for shadow-free tracking. Thebacktracking algorithm uses a mathematical model of the tracker 300 tocalculate and update the backtracking angles for every two degrees ofthe sun's movement. While the predetermined threshold is described astwo degrees herein, any predetermined threshold can be used depending onhow often the users desire the tracker's angle to be updated.

For calculating the optimal angle, the backtracking algorithm takes intoconsideration the width of the tracker 300, the distance between therows of trackers 705-725, the difference in elevation between thedifferent rows of trackers 705-725, the current angle of each tracker705-725, and the angle of the sun 315. The row controller 410 calculatesthe backtracking angles for the trackers 300 its row. The correspondingrow controller 730-750 uses the backtracking algorithm to maximize theenergy yield for the trackers 705-725 by minimizing the angle betweenthe sun vector and the normal vector of the plane of the tracker 300while also minimizing the shadows cast by the other trackers 705-725 inthe array 700.

During morning backtracking, the row controller 730-750 sets the angleof each tracker 300 so that the shadow from an eastern, adjacent tracker300 will come as close as possible to the lower edge of the tracker 300in question as possible. This is because in the morning, the sun 315 isrising, so the gap between the shadow and the tracker 300 increases overtime. Every time the row controller 730-750 adjusts the angle of thetracker 300, the shadow moves back to as close as possible to the bottomedge of the tracker 300.

During afternoon backtracking, the row controller 730-750 sets the angleof each tracker 300 so that the shadow from a western, adjacent tracker300 has a gap between the shadow cast by the adjacent tracker 300 andthe bottom of the tracker 300 in question. Since the sun 315 is setting,the gap will decrease over time. The goal is to have the gap disappearby the time the sun 315 has moved enough that the row controller 730-750needs to move the tracker 300 again.

However, at some angles and some relative elevations, a single tracker300 can shade more than one other row of trackers 705-725. Morespecifically, FIG. 7 illustrates five different rows of trackers 1-5705, 710, 715, 720, and 725. Each of the five rows of trackers 1-5 705,710, 715, 720, and 725 is associated with a different row. For thisexample, each of the five rows of trackers 1-5 705, 710, 715, 720, and725 is currently facing in a westerly direction towards the sun 315(shown in FIG. 3 ). In addition, each of the five rows of trackers 1-5705, 710, 715, 720, and 725 are positioned at different elevations. Thedifferences in elevations could cause shading issues at certain times ofday. For example, if tracker row 5 725 was positioned so that thetracker 300 was normal to the position of the sun 315 as is currentlyshown in FIG. 7 , multiple other trackers would be shaded. In thisexample tracker row 4 720 would be completely shaded, tracker row 3 715would be mostly shaded and a portion of tracker row 2 710 would beshaded as well. Accordingly, more irradiance would be lost than would begained by having tracker row 5 725 normal to the vector of the positionof the sun 315.

To account for the terrain and the other rows of trackers 705-725, eachrow controller 730-750 executes an array level terrain basedbacktracking algorithm to determine an optimal angle for the rows oftracker(s) 705-725 based on the terrain information for the row inquestion and the other rows of trackers 705-725 to the east and the westof the row in question.

In the array level terrain based backtracking algorithm, the rowcontroller 730-750 stores the terrain information for each row oftrackers 705-725 including the top-of-post heights of the trackers 300in each row of trackers 705-725. The row controller 730-750 also storesthe size of the tracker 300 and the spacing between the rows, includingany variable spacing between the rows. Other information stored by therow controller 730-750 includes, but is not limited to, the latitude,longitude, and altitude of the site, the current time, and the currentsun position based on the exact date, time, latitude, longitude, andaltitude. The row controller 730-750 uses this information to modelshadows to compute the exact shadow regions that will be made by thecurrent row and the adjacent rows.

In the array level terrain based backtracking algorithm, each trackercontroller 730-750 determines the optimal angle for each row of trackers705-725. The optimal angle for each tracker 705-725 is the angle thatprovides the maximum irradiance collected, which is usually the anglethat is closest normal to the vector of the sun 315. In otherembodiments, the tracker controller 730-750 calculates an angle wherethe shadow cast by the row of trackers 705-720 in question is cast atthe base of the adjacent row of trackers 705-725. In this embodiment,the row controller 730-750 assumes that the starting position of theadjacent rows of trackers 705-725 is the same as the row of trackers705-725 in question. In some embodiments, the row controller 730-750determines the plane of the array for each of the adjacent rows. Thenthe row controller 730-750 uses the determined planes of array for theadjacent rows to determine the plane of array for the current row. Eachof the planes of arrays are calculated to maximize the amount of solarirradiance collected while minimizing the amount of shadow received andprojected onto other trackers 300.

The row controllers 730-750 then communicate their angle with the restof the row controllers 730-750 and each receive the angles for each ofthe other rows of trackers 705-725. Then the row controller 730-750executes a shadow model to determine the shadows being cast by its rowof trackers 705-725 and the shadows being cast by other rows of trackers705-725 based on the provided angles, and how those shadows may impactthe irradiance collected by the row of trackers 705-725 in question.

Each row controller 730-750 then calculates a new angle for its row oftrackers 705-725 based on the shadows that its row of trackers 705-725would cast and the shadows cast by other rows of trackers 705-725 tomaximize the amount of irradiance collected for the array 700 as awhole. The row controllers 730-750 report these new angles to each ofthe other row controllers 730-750. Each row controller 730-750 willrepeatedly calculate a new angle for its row of trackers 705-725 basedon the reported angles of the other rows of trackers 705-725. In someembodiments, this process is repeated until a maximum amount ofirradiance is determined based on the angles of the rows of trackers705-725 and the shadows that they cast. In the example embodiment, theprocess is repeated multiple times until optimal angles are determinedfor each of the rows of trackers 705-725 for each angle of the sun 315desired. For example, the process can be repeated for every two degreesthat the sun 315 moves or another predetermined threshold based on theuser's preferences.

In some embodiments, the row controller 730-750 determines that a row oftrackers 705-725 is a lost cause, such as when a row of trackers 705-725is in a gully, surrounded by hills, or just having a higher elevationrow of trackers 705 between it and the sun 315. If the row of trackers705 is determined to be a lost cause, the row of trackers 705-725 inquestion will be set to a horizontal position, i.e., at an angle of zerodegrees. For example, row of trackers 4 720 may be determined to be alost cause because of the shadows cast by row of trackers 5 725. In thisexample, row of trackers 4 720 is set to angle zero. Then, the row oftrackers 5 725 may be set at an angle that is fully normal to the vectorof the sun 315 or as close as possible without casting shade on row oftrackers 3 715. Row of trackers 5 725 can also be set to an angle thatcasts a shadow at the bottom of row of trackers 3 715 to allow that rowof trackers 3 715 to not be shaded and to also maximize the amount ofirradiance collected. The row of trackers 705-725 can maximize theirradiance collected by positioning the tracker 300 at an angle as closeto normal to the sun 315 as possible without encountering shade.However, the amount of shading caused may reduce the overall amount ofirradiance collected.

In some other embodiments, the process is performed by the arraycontroller 755. The array controller 755 stores the elevation andspacing information for the rows of trackers 705-725 that make up thearray 700. Based on the angle of the sun 315, the array controller 755uses the shadow model to determine the angles for each of the rows oftrackers 705-725 that maximizes the amount of solar irradiance collectedby the array 700 as a whole. This can mean that to maximize the totalirradiance collected by the array 700, one or more rows of trackers705-725 may be set to not directly collect irradiance, such as row oftrackers 4 720 in FIG. 7 . In these embodiments, the array controller755 can replace the row controllers 730-750. The array controller 755can also be in communication with the row controllers 730-750 todetermine the current angle for each row of trackers 705-725 and toinstruct the row controllers 730-750, which angle to set each row oftrackers 705-725 to.

In some further embodiments, rather than setting the angle of a lostcause row of trackers 705-725 to zero, the angle is set to match theangle of the sun 315 to provide a minimum amount of shadow on the otherrows of trackers 705-725. For example, the row controllers 730-750and/or the array controller 755 determine that if row 5 of trackers 725is turned towards the sun 315, then the row 5 trackers 725 will blockmultiple rows of trackers 725 from collecting solar irradiance. The rowcontrollers 730-750 and/or the array controller 755 determine that theamount of solar irradiance lost is greater than the amount of irradiancecollected by the plane of row 5 of trackers 725 being normal to theangle of the sun 315. In this situation, the row controllers 730-750and/or the array controller 755 can set row 5 of trackers 725 to anangle equal to or close to the angle of the sun 315. In this way, therow 5 of trackers 725 provides a minimum amount of shade to the otherrows of trackers 7-5-720.

FIG. 8 illustrates an example graph 800 of the angles for the plane ofthe tracker 300 (shown in FIG. 3 ) over the period of one day. Line 805illustrates the angles of the tracker 300 during a single day. At thebeginning of the day, the tracker 800 is positioned using morningbacktracking 810. During the majority of the day, the tracker 300 ispositioned using the normal algorithm 815. At the end of the day, thetracker 300 is positioned using evening backtracking 820.

FIG. 9 illustrates another graph 900 of the angles for the plane of thetracker 300 (shown in FIG. 3 ) over the period of one day. Line 905illustrates the absolute value of the angle. In the embodiment shown inFIG. 9 , the tracker 300 is stored in the horizontal position overnight.

FIG. 10 illustrates a process 1000 for performing backtracking. In thisembodiment, process 1000 is performed by the row controller 410 (shownin FIG. 4 ) controlling a single tracker 300 (shown in FIG. 3 ), such astracker C 515 (shown in FIG. 5 ).

The row controller 410 stores 1005, in at least one memory device, aplurality of positional information and a shadow model for determiningplacement of shadows based on positions of objects relative to the sun315 (shown in FIG. 3 ).

The row controller 410 determines 1010 a position of the sun 315 at afirst specific point in time. The row controller 410 retrieves 1015,from the at least one memory device, height information for the trackerC 515 and at least one adjacent tracker 300, such as tracker B 510(shown in FIG. 5 ). A first height of the tracker 300 is different thana second height of the at least one adjacent tracker 300, such astrackers B & C 510 and 515. Both heights are based on the top of supportcolumn 305 (shown in FIG. 3 ) of the corresponding tracker 300. In someembodiments, the support column 305 is the same height for each tracker300, but the relative heights of the tops of the support columns 305 isbased on the terrain in which the support columns 305 are placed. Inother words, a difference in the first height of the tracker 300 and asecond height of the at least one adjacent tracker 300 is based onterrain where the individual tracker 300 is positioned. In thisembodiment, the tracker 300 is a first tracker 300, wherein the at leastone adjacent tracker 300 includes a second tracker 300 and a thirdtracker 300, such as trackers B & D 510 and 520 respectively, wheretracker C 515 is the first tracker 300. The second tracker 300 ispositioned east of the first tracker 300 and the third tracker 300 ispositioned west of the first tracker 300. The first tracker 300 is in afirst row. The second tracker is in a second row. The third tracker 300is in a third row.

The row controller 410 executes 1020 the shadow model based on theretrieved height information and the position of the sun 315. The rowcontroller 410 determines 1025 a first angle for the tracker 300 basedon the executed shadow model. In executing the shadow model, the rowcontroller 410 determines a first position of a first shadow cast by thesecond tracker 300 (aka tracker B 510). The row controller 410 can alsodetermine a second position of a second shadow cast by the third tracker(aka tracker D 520). The row controller 410 determines the first anglefor the first tracker 300 (aka tracker C 515) to avoid the first shadowand/or the second shadow.

In executing the shadow model, the row controller 410 also determines athird position of a third shadow cast by the first tracker 300 (akatracker C 515). The row controller 410 determines the first angle forthe first tracker 300 (aka tracker C 515) to avoid casting the thirdshadow on at least one of the second tracker 300 (aka tracker B 510) andthe third tracker 300 (aka tracker D 520). In this embodiment, the rowcontroller 410 only executes the shadow model and the backtrackingprocess 1000 when the sun 315 is low in the sky, such as when the anglebetween the sun 315 and a horizon is below a predetermined threshold. Inalternative embodiments, the predetermined threshold is based on thesecond height of the at least one adjacent tracker 300.

The row controller 410 transmits 1030 instructions to the rotationalmechanism 310 associated with the tracker 300 to change the plane of thetracker 300 to the first angle. The plane of the tracker 300 isconsidered the top surface 106 (shown in FIG. 2 ) of the tracker 300. Insome embodiments, the row controller 410 instructs every tracker 200 inthe plurality of trackers 300 to the first angle.

Each tracker 300 of the plurality of trackers 300 includes a rotationalmechanism 310 and the row controller 410 transmits instructions to eachof the plurality of rotational mechanisms 310 to change the plane of thecorresponding tracker 300 to the first angle in this embodiment. Inalternative embodiments, the rotational mechanism 310 is attached toeach tracker 300 of the plurality of trackers 300 and the row controller410 instructs the rotational mechanism 310 to change the plane of theplurality of trackers 300 to the first angle.

The row controller 410 determines a second position of the sun 315 at asecond specific point in time. The row controller 410 executes theshadow model based on the retrieved height information and the secondposition of the sun 315. The row controller 410 determines a secondangle for the tracker 300 based on the executed shadow model. The rowcontroller 410 transmits instructions to the rotational mechanism 310 tochange the facing of the tracker 300 to the second angle. Steps 1005through 1030 are repeated continuously during the backtracking process1000.

The row controller 410 repeats steps 1005 to 1030 to change the plane ofthe tracker 300 once the sun 315 has moved a predetermined amount. Therow controller 410 determines if a difference between the position ofthe sun 315 and the second position of the sun 315 exceeds apredetermined threshold. This can be based on a change in angle of thesun 315 or after a specific amount of time has passed. If the differenceexceeds the predetermined threshold, the row controller 410 transmitsinstructions to the rotational mechanism 310 to change the plane of thetracker 300 to the second angle.

During morning backtracking, the row controller 410 sets the angle ofthe tracker 300 so that the shadow from an eastern, adjacent tracker 300(tracker B 510) will come as close as possible to the lower edge of thetracker 300 (tracker C 515) in question as possible. This is because inthe morning, the sun 315 is rising, so the gap between the shadow andthe tracker 300 increases over time. Every time the row controller 410adjusts the angle of the tracker 300, the shadow moves back to as closeas possible to the bottom edge of the tracker 300 (tracker C 515).

During afternoon backtracking, the row controller 410 sets the angle ofthe tracker 300 so that the shadow from a western, adjacent tracker 300(tracker D 520) has a gap between the shadow cast by the adjacenttracker 300 (tracker D 520) and the bottom of the tracker 300 inquestion (tracker C 515). Since the sun 315 is setting, the gap willdecrease over time. The goal is to have the gap disappear by the timethe sun 315 has moved enough that the row controller 410 needs to movethe tracker 300 again.

Process 1000 can be performed dynamically in real time. Process 1000 canalso be performed in advance. For example, row controller 410 candetermine all of the angles for a day based on knowing where the sun 315will be positioned at each moment in the day. The steps of process 1000can also be performed by site controller 415 or other computer devicesand the results can be provided to the row controller 410 to know whento adjust the tracker 300 and what angle to adjust the tracker 300 to.

FIG. 11 illustrates a process 1100 for performing backtracking on thearray 600 and 700 of trackers (shown in FIGS. 6 and 7 ). In at least oneembodiment, process 1100 is performed by the row controller 410 (shownin FIG. 4 ) controlling a single tracker 300 (shown in FIG. 3 ), such asrow controller 740 controlling tracker row 5 715 (both shown in FIG. 7). In another embodiment, process 1100 is performed by the arraycontroller 755 (shown in FIG. 7 ).

The row controller 410 stores 1105 a plurality of positional informationand a shadow model for determining placement of shadows based onpositions of objects relative to the sun in the at least one memorydevice. In some embodiments, the row controller 410 also stores heightinformation for each of the trackers 300 in the array 700.

The row controller 410 determines 1110 a position of the sun 315 (shownin FIG. 3 ) at a first specific point in time. The row controller 410retrieves 1115 height information for the plurality of trackers 300 inthe array 700 from the at least one memory device. The first height ofthe first tracker 300 is different than a second height of a secondtracker 300 of the plurality of trackers 300 in the array 700. Forexample, tracker 705 is a first height and tracker 725 is at the secondheight. Both heights are based on the top of support column 305 (shownin FIG. 3 ) of the corresponding tracker 300. In some embodiments, thesupport column 305 is the same height for each tracker 300, but therelative heights of the tops of the support columns 305 is based on theterrain in which the support columns 305 are placed. In other words, adifference in the first height of the tracker 300 and a second height ofthe at least one adjacent tracker 300 is based on terrain where theindividual tracker 300 is positioned.

The row controller 410 executes 1120 the shadow model based on theretrieved height information and the position of the sun 315. The rowcontroller 410 determines 1125 a first angle for the first tracker 300based on the executed shadow model. The row controller 410 collects 1130an angle for each tracker 300 in the plurality of trackers 300 in thearray 700. While the row controller 410 is collecting 1130 the angle foreach tracker, the row controller 410 is also transmitting the firstangle to the other row controllers 410. The angles from each tracker 300are the angle that was calculated by each individual row controller 410.Each row controller 410 transmits its calculated angle to the other rowcontrollers 410. The row controller 410 adjusts 1135 the first anglebased on executing the shadow model with the first angle and theplurality of angles associated with the plurality of trackers 300 in thearray 700. For example, the row controller 410 determines a firstposition of a first shadow cast by the second tracker 300. The rowcontroller 410 determines the adjusted first angle for the first tracker300 to avoid the first shadow. The row controller 410 determines asecond position of a second shadow cast by the first tracker 300. Therow controller 410 determines the adjusted first angle for the firsttracker 300 to avoid casting the second shadow on a third tracker 300 ofthe plurality of trackers 300.

The row controller 410 transmits 1140 instructions to the rotationalmechanism 310 to change the plane of the tracker 300 to the adjustedfirst angle.

In some embodiments, the row controller 410 collects a plurality ofadjusted angles for each tracker 300 in the plurality of trackers 300.Where the adjusted angles are calculated by the row controllers 410 ofeach row of trackers 300 in the array 700 based on the plurality ofangles and the first angle. The row controller 410 further adjusts theadjusted first angle based on executing the shadow model with theadjusted first angle and the plurality of adjusted angles. These steps,of collecting adjusted angles from the other row controllers 410 andreadjusting the first angle can be cycled through repeatedly untildesired conditions are met. One set of desired conditions is maximumamount of irradiance collect for the array 700 as a whole or the amountof irradiance to be collected that exceeds a predetermined threshold.Another set of desired conditions can be no shadows being cast on any ofthe trackers 300.

The row controller 410 determines a first amount of irradiance to becollected based on the first angle, the plurality of angles, and theshadow model. The row controller 410 determines a second amount ofirradiance to be collected based on the adjusted first angle, theplurality of adjusted angles, and the shadow model. The row controller410 compares the first amount of irradiance to be collected with thesecond amount of irradiance to be collected. Then the row controller 410determines whether to transmit instructions for the first angle or theadjusted first angle based on the comparison. The row controller 410 canmake repeated amount of irradiance to be collected comparisons todetermine which set of angles provides the maximum irradiance collected.By repeatedly cycling through the steps of process 1100, the rowcontroller 410 determines an adjusted first angle to maximize an amountof irradiance to be collected by the plurality of trackers 300 in thearray 700.

The row controller 410 determines a second position of the sun 315 at asecond specific point in time. The row controller 410 executes theshadow model based on the retrieved height information and the secondposition of the sun 315. The row controller 410 determines a secondangle for the first tracker 300 based on the executed shadow model. Therow controller 410 collects an additional angle for each tracker 300 inthe plurality of trackers 300. The row controller 410 adjusts the secondangle based on executing the shadow model with the second angle and theplurality of additional angles associated with the plurality of trackers300. The row controller 410 transmits instructions to the rotationalmechanism 310 to change the plane of the first tracker 300 to theadjusted second angle. The row controller 410 can determine if adifference between the position of the sun 315 and the second positionof the sun 315 exceeds a predetermined threshold. If the differenceexceeds the predetermined threshold, the row controller 410 can transmitinstructions to the rotational mechanism 310 to change the plane of thefirst tracker 300 to the adjusted second angle.

In some embodiments, the first tracker 300 is in a first row including aplurality of trackers 300 in a row. In these embodiments, the rowcontroller 410 instructs every tracker 300 in the first row to changethe plane of the plurality of trackers 300 in the first row to theadjusted first angle.

In some embodiments, the array controller 755 performs the steps ofProcess 1100 for all of the trackers 300 in the array 700. In theseembodiments, the array controller 755 determines a first angle for thefirst tracker and the plurality of angles for the plurality of trackers300 in the array 700 based on the executed shadow model.

Process 1100 can be performed dynamically in real time. Process 1100 canalso be performed in advance. For example, row controller 410 candetermine all of the angles for a day based on knowing where the sun 315will be positioned at each moment in the day. The steps of process 1000can also be performed by site controller 415 or other computer devicesand the results can be provided to the row controller 410 to know whento adjust the tracker 300 and what angle to adjust the tracker 300 to.

FIG. 12 illustrates an example configuration of a user computer device1202 used in the site 405 (shown in FIG. 4 ), in accordance with oneexample of the present disclosure. User computer device 1202 is operatedby a user 1201. The user computer device 1202 can include, but is notlimited to, the row controller 410, the site controller 415, and thesensors 420 (all shown in FIG. 1 ). The user computer device 1202includes a processor 1205 for executing instructions. In some examples,executable instructions are stored in a memory area 1210. The processor1205 can include one or more processing units (e.g., in a multi-coreconfiguration). The memory area 1210 is any device allowing informationsuch as executable instructions and/or transaction data to be stored andretrieved. The memory area 1210 can include one or morecomputer-readable media.

The user computer device 1202 also includes at least one media outputcomponent 1215 for presenting information to the user 1201. The mediaoutput component 1215 is any component capable of conveying informationto the user 1201. In some examples, the media output component 1215includes an output adapter (not shown) such as a video adapter and/or anaudio adapter. An output adapter is operatively coupled to the processor1205 and operatively coupleable to an output device such as a displaydevice (e.g., a cathode ray tube (CRT), liquid crystal display (LCD),light emitting diode (LED) display, or “electronic ink” display) or anaudio output device (e.g., a speaker or headphones). In some examples,the media output component 1215 is configured to present a graphicaluser interface (e.g., a web browser and/or a client application) to theuser 1201. A graphical user interface can include, for example, aninterface for viewing the performance information about a tracker 300(shown in FIG. 3 ). In some examples, the user computer device 1202includes an input device 1220 for receiving input from the user 1201.The user 1201 can use the input device 1220 to, without limitation,select to view the performance of a tracker 300. The input device 1220can include, for example, a keyboard, a pointing device, a mouse, astylus, a touch sensitive panel (e.g., a touch pad or a touch screen), agyroscope, an accelerometer, a position detector, a biometric inputdevice, and/or an audio input device. A single component such as a touchscreen can function as both an output device of the media outputcomponent 1215 and the input device 1220.

The user computer device 1202 can also include a communication interface1225, communicatively coupled to a remote device such as the sitecontroller 415. The communication interface 1225 can include, forexample, a wired or wireless network adapter and/or a wireless datatransceiver for use with a mobile telecommunications network.

Stored in the memory area 1210 are, for example, computer-readableinstructions for providing a user interface to the user 1201 via themedia output component 1215 and, optionally, receiving and processinginput from the input device 1220. A user interface can include, amongother possibilities, a web browser and/or a client application. Webbrowsers enable users, such as the user 1201, to display and interactwith media and other information typically embedded on a web page or awebsite from the row controller 410. A client application allows theuser 1201 to interact with, for example, the row controller 410. Forexample, instructions can be stored by a cloud service, and the outputof the execution of the instructions sent to the media output component1215.

The processor 1205 executes computer-executable instructions forimplementing aspects of the disclosure. In some examples, the processor1205 is transformed into a special purpose microprocessor by executingcomputer-executable instructions or by otherwise being programmed. Forexample, the processor 1205 is programmed with instructions such asthose shown in FIGS. 10 and 11 .

Described herein are computer systems such as the row controller andrelated computer systems. As described herein, all such computer systemsinclude a processor and a memory. However, any processor in a computerdevice referred to herein may also refer to one or more processorswherein the processor may be in one computing device or a plurality ofcomputing devices acting in parallel. Additionally, any memory in acomputer device referred to herein may also refer to one or morememories wherein the memories may be in one computing device or aplurality of computing devices acting in parallel.

As used herein, a processor may include any programmable systemincluding systems using micro-controllers; reduced instruction setcircuits (RISC), application-specific integrated circuits (ASICs), logiccircuits, and any other circuit or processor capable of executing thefunctions described herein. The above examples are example only, and arethus not intended to limit in any way the definition and/or meaning ofthe term “processor.”

As used herein, the term “database” may refer to either a body of data,a relational database management system (RDBMS), or to both. As usedherein, a database may include any collection of data includinghierarchical databases, relational databases, flat file databases,object-relational databases, object-oriented databases, and any otherstructured collection of records or data that is stored in a computersystem. The above examples are example only, and thus are not intendedto limit in any way the definition and/or meaning of the term database.Examples of RDBMS' include, but are not limited to including, Oracle®Database, MySQL, IBM® DB2, Microsoft® SQL Server, Sybase®, andPostgreSQL. However, any database may be used that enables the systemsand methods described herein. (Oracle is a registered trademark ofOracle Corporation, Redwood Shores, Calif.; IBM is a registeredtrademark of International Business Machines Corporation, Armonk, N.Y.;Microsoft is a registered trademark of Microsoft Corporation, Redmond,Wash.; and Sybase is a registered trademark of Sybase, Dublin, Calif.)

In one embodiment, a computer program is provided, and the program isembodied on a computer-readable medium. In an example embodiment, thesystem is executed on a single computer system, without requiring aconnection to a server computer. In a further embodiment, the system isbeing run in a Windows® environment (Windows is a registered trademarkof Microsoft Corporation, Redmond, Wash.). In yet another embodiment,the system is run on a mainframe environment and a UNIX® serverenvironment (UNIX is a registered trademark of X/Open Company Limitedlocated in Reading, Berkshire, United Kingdom). The application isflexible and designed to run in various different environments withoutcompromising any major functionality. In some embodiments, the systemincludes multiple components distributed among a plurality of computingdevices. One or more components may be in the form ofcomputer-executable instructions embodied in a computer-readable medium.

As used herein, an element or step recited in the singular and proceededwith the word “a” or “an” should be understood as not excluding pluralelements or steps, unless such exclusion is explicitly recited.Furthermore, references to “example embodiment” or “one embodiment” ofthe present disclosure are not intended to be interpreted as excludingthe existence of additional embodiments that also incorporate therecited features.

As used herein, the terms “software” and “firmware” are interchangeable,and include any computer program stored in memory for execution by aprocessor, including RAM memory, ROM memory, EPROM memory, EEPROMmemory, and non-volatile RAM (NVRAM) memory. The above memory types areexample only, and are thus not limiting as to the types of memory usablefor storage of a computer program.

The methods and system described herein may be implemented usingcomputer programming or engineering techniques including computersoftware, firmware, hardware, or any combination or subset. As disclosedabove, at least one technical problem with prior systems is that thereis a need for systems for a cost-effective and reliable manner fordetermining a direction of arrival of a wireless signal. The system andmethods described herein address that technical problem. Additionally,at least one of the technical solutions to the technical problemsprovided by this system may include: (i) improved accuracy indetermining proper angles for solar trackers, (ii) reduced shadows onsolar trackers during dusk and dawn hours; (iii) increased overall solarirradiance collected; (iv) up-to-date positioning of solar trackersbased on adjacent solar trackers; and (v) reduced processing powerneeded to calculate necessary angles for optimal solar collection.

The methods and systems described herein may be implemented usingcomputer programming or engineering techniques including computersoftware, firmware, hardware, or any combination or subset thereof,wherein the technical effects may be achieved by performing at least oneof the following steps: a) store, in the at least one memory device, aplurality of positional information and a shadow model for determiningplacement of shadows based on positions of objects relative to the sun;b) determine a position of the sun at a first specific point in time; c)retrieve, from the at least one memory device, height information forthe plurality of trackers in the array, wherein a first height of thefirst tracker is different than a second height of a second tracker ofthe plurality of trackers in the array, wherein a difference in thefirst height of the first tracker and the second height of the secondtracker is based on terrain where the array is positioned, wherein thefirst tracker is in a first row comprising a plurality of trackers in arow, and wherein the at least one processor is programmed to instructevery tracker in the first row to change the plane of the plurality oftrackers in the first row to the adjusted first angle; d) execute theshadow model based on the retrieved height information and the positionof the sun; e) determine a first angle for the first tracker based onthe executed shadow model; f) collect an angle for each tracker in theplurality of trackers in the array; g) adjust the first angle based onexecuting the shadow model with the first angle and the plurality ofangles associated with the plurality of trackers in the array; h)transmit instructions to the rotational mechanism to change the plane ofthe tracker to the adjusted first angle; i) collect a plurality ofadjusted angles for each tracker in the plurality of trackers; j) adjustthe adjusted first angle based on executing the shadow model with theadjusted first angle and the plurality of adjusted angles; k) determinea first amount of irradiance to be collected based on the first angle,the plurality of angles, and the shadow model; l) determine a secondamount of irradiance to be collected based on the adjusted first angle,the plurality of adjusted angles, and the shadow model; m) compare thefirst amount of irradiance to be collected with the second amount ofirradiance to be collected; n) determine whether to transmitinstructions for the first angle or the adjusted first angle based onthe comparison; o) determine an adjusted first angle to maximize anamount of irradiance to be collected by the plurality of trackers in thearray; p) transmit the first angle to a plurality of controllersassociated with the plurality of trackers in the array; q) determine afirst angle for the first tracker and the plurality of angles for theplurality of trackers in the array based on the executed shadow model;r) determine a second position of the sun at a second specific point intime; s) execute the shadow model based on the retrieved heightinformation and the second position of the sun; t) determine a secondangle for the first tracker based on the executed shadow model; u)collect an additional angle for each tracker in the plurality oftrackers; v) adjust the second angle based on executing the shadow modelwith the second angle and the plurality of additional angles associatedwith the plurality of trackers; w) transmit instructions to therotational mechanism to change the plane of the first tracker to theadjusted second angle; x) determine if a difference between the positionof the sun and the second position of the sun exceeds a predeterminedthreshold; y) if the difference exceeds the predetermined threshold,transmit instructions to the rotational mechanism to change the plane ofthe first tracker to the adjusted second angle; z) determine a firstposition of a first shadow cast by the second tracker; aa) determine theadjusted first angle for the first tracker to avoid the first shadow;bb) determine a second position of a second shadow cast by the firsttracker; and cc) determine the adjusted first angle for the firsttracker to avoid casting the second shadow on a third tracker of theplurality of trackers.

The computer-implemented methods discussed herein may includeadditional, less, or alternate actions, including those discussedelsewhere herein. The methods may be implemented via one or more localor remote processors, transceivers, servers, and/or sensors (such asprocessors, transceivers, servers, and/or sensors mounted on vehicles ormobile devices, or associated with smart infrastructure or remoteservers), and/or via computer-executable instructions stored onnon-transitory computer-readable media or medium. Additionally, thecomputer systems discussed herein may include additional, less, oralternate functionality, including that discussed elsewhere herein. Thecomputer systems discussed herein may include or be implemented viacomputer-executable instructions stored on non-transitorycomputer-readable media or medium.

As used herein, the term “non-transitory computer-readable media” isintended to be representative of any tangible computer-based deviceimplemented in any method or technology for short-term and long-termstorage of information, such as, computer-readable instructions, datastructures, program modules and sub-modules, or other data in anydevice. Therefore, the methods described herein may be encoded asexecutable instructions embodied in a tangible, non-transitory, computerreadable medium, including, without limitation, a storage device and/ora memory device. Such instructions, when executed by a processor, causethe processor to perform at least a portion of the methods describedherein. Moreover, as used herein, the term “non-transitorycomputer-readable media” includes all tangible, computer-readable media,including, without limitation, non-transitory computer storage devices,including, without limitation, volatile and nonvolatile media, andremovable and non-removable media such as a firmware, physical andvirtual storage, CD-ROMs, DVDs, and any other digital source such as anetwork or the Internet, as well as yet to be developed digital means,with the sole exception being a transitory, propagating signal.

Furthermore, as used herein, the term “real-time” refers to at least oneof the time of occurrence of the associated events, the time ofmeasurement and collection of predetermined data, the time to processthe data, and the time of a system response to the events and theenvironment. In the embodiments described herein, these activities andevents occur substantially instantaneously.

This written description uses examples to disclose the invention,including the best mode, and also to enable any person skilled in theart to practice the invention, including making and using any devices orsystems and performing any incorporated methods. The patentable scope ofthe invention is defined by the claims, and may include other examplesthat occur to those skilled in the art. Such other examples are intendedto be within the scope of the claims if they have structural elementsthat do not differ from the literal language of the claims, or if theyinclude equivalent structural elements with insubstantial differencesfrom the literal language of the claims.

What is claimed is:
 1. A controller for a first tracker of a pluralityof trackers in an array, the controller including a physical processorin communication with at least one memory device and a rotationmechanism of the first tracker, the processor programmed to: determine afirst angle for the first tracker based on a shadow model and a positionof the sun at a first specific point in time; determine a relativeheight for each tracker of the plurality of trackers in the array forthe first specific point in time; adjust the first angle based onexecuting the shadow model with the plurality of relative trackerheights associated with the plurality of trackers in the array;determine a first amount of irradiance to be collected based on thefirst angle, the plurality of relative tracker heights, and the shadowmodel; determine a second amount of irradiance to be collected based onthe adjusted first angle, the plurality of relative tracker heights, andthe shadow model; compare the first amount of irradiance to be collectedwith the second amount of irradiance to be collected; determine whetherto transmit instructions for the first angle or the adjusted first anglebased on the comparison; and transmit the determined instructions to therotational mechanism to change a plane of the tracker.
 2. The controllerin accordance with claim 1, wherein the processor is further programmedto determine an angle for each tracker of the plurality of trackersbased on the corresponding relative tracker height and the shadow model.3. The controller in accordance with claim 2, wherein the processor isfurther programmed to determine an adjusted angle for each tracker ofthe plurality of trackers based on the adjusted first angle, thecorresponding relative tracker height, and the shadow model.
 4. Thecontroller in accordance with claim 3, wherein the processor is furtherprogrammed to further adjust the adjusted first angle based on executingthe shadow model with the adjusted first angle and the plurality ofadjusted angles.
 5. The controller in accordance with claim 2, whereinthe processor is further programmed to adjust the first angle based onexecuting the shadow model with the plurality of angles associated withthe plurality of trackers in the array.
 6. The controller in accordancewith claim 1, wherein the processor is further programmed to determinean adjusted first angle to maximize an amount of irradiance to becollected by the plurality of trackers in the array.
 7. The controllerin accordance with claim 1, wherein the processor is further programmedto transmit the first angle to a plurality of controllers associatedwith the plurality of trackers in the array.
 8. The controller inaccordance with claim 1, wherein the processor is further programmed to:retrieve, from the at least one memory device, height information forthe plurality of trackers in the array, wherein a first height of thefirst tracker is different than a second height of a second tracker ofthe plurality of trackers in the array, wherein the height informationincludes heights from one or more trackers of the plurality of trackersadjacent to the first tracker and one or more trackers of the pluralityof trackers that are non-adjacent to the first tracker; and execute theshadow model based on the retrieved height information and the positionof the sun.
 9. The controller in accordance with claim 8, wherein adifference in the first height of the first tracker and the secondheight of the second tracker is based on terrain where the array ispositioned.
 10. The controller in accordance with claim 1, wherein theprocessor is further programmed to: determine a second position of thesun at a second specific point in time; execute the shadow model basedon the plurality of relative tracker heights and the second position ofthe sun; determine a second angle for the first tracker based on theshadow model; collect an additional angle for each tracker of theplurality of trackers; adjust the second angle based on executing theshadow model with the second angle and the plurality of relative trackerheights associated with the plurality of trackers; and transmitinstructions to the rotational mechanism to change the plane of thefirst tracker to the adjusted second angle.
 11. The controller inaccordance with claim 10, wherein the processor is further programmedto: determine if a difference between the position of the sun and thesecond position of the sun exceeds a predetermined threshold; and if thedifference exceeds the predetermined threshold, transmit instructions tothe rotational mechanism to change the plane of the first tracker to theadjusted second angle.
 12. The controller in accordance with claim 1,wherein the first tracker is in a first row comprising a plurality oftrackers in a row, and wherein the at least one processor is programmedto instruct every tracker in the first row to change the plane of theplurality of trackers in the first row.
 13. The controller in accordancewith claim 1, wherein the processor is further programmed to: determinea first position of a first shadow cast by a second tracker; anddetermine the adjusted first angle for the first tracker to avoid thefirst shadow.
 14. The controller in accordance with claim 12, whereinthe processor is further programmed to: determine a second position of asecond shadow cast by the first tracker; and determine the adjustedfirst angle for the first tracker to avoid casting the second shadow ona third tracker of the plurality of trackers.
 15. A method for operatinga first tracker of a plurality of trackers in an array, the methodimplemented by a physical processor in communication with at least onememory device and a rotational mechanism of the first tracker, themethod comprises: determining, by the at least one processor, a firstangle for the first tracker based on a shadow model and a position ofthe sun at a first specific point in time; determining a relative heightfor each tracker of the plurality of trackers in the array for the firstspecific point in time; adjusting the first angle based on executing theshadow model with the plurality of relative tracker heights associatedwith the plurality of trackers in the array; determining a first amountof irradiance to be collected based on the first angle, the plurality ofrelative tracker heights, and the shadow model; determining a secondamount of irradiance to be collected based on the adjusted first angle,the plurality of relative tracker heights, and the shadow model;comparing the first amount of irradiance to be collected with the secondamount of irradiance to be collected; determining whether to transmitinstructions for the first angle or the adjusted first angle based onthe comparison; and transmitting the determined instructions to therotational mechanism to change a plane of the tracker.
 16. The method inaccordance with claim 15 further comprising: determining an angle foreach tracker of the plurality of trackers based on the correspondingrelative tracker height and the shadow model; and determining anadjusted angle for each tracker of the plurality of trackers based onthe adjusted first angle, the corresponding relative tracker height, andthe shadow model.
 17. A tracker system comprising: a first trackerattached to a rotational mechanism for changing a plane of the firsttracker, and wherein the first tracker is in an array including aplurality of trackers; and a controller in communication with therotational mechanism, the controller comprising a physical processor incommunication with at least one memory device, wherein the processor isprogrammed to: determine a first angle for the first tracker based on ashadow model and a position of the sun at a first specific point intime; collect a relative height for each tracker of the plurality oftrackers in the array for the first specific point in time; adjust thefirst angle based on executing the shadow model with the plurality ofrelative tracker heights associated with the plurality of trackers inthe array; determine a first amount of irradiance to be collected basedon the first angle, the plurality of relative tracker heights, and theshadow model; determine a second amount of irradiance to be collectedbased on the adjusted first angle, the plurality of relative trackerheights, and the shadow model; compare the first amount of irradiance tobe collected with the second amount of irradiance to be collected;determine whether to transmit instructions for the first angle or theadjusted first angle based on the comparison; and transmit thedetermined instructions to the rotational mechanism to change the planeof the tracker.
 18. The tracker system in accordance with claim 17,wherein the processor is further programmed to: determine an angle foreach tracker of the plurality of trackers based on the correspondingrelative tracker height and the shadow model; and determine an adjustedangle for each tracker of the plurality of trackers based on theadjusted first angle, the corresponding relative tracker height, and theshadow model.
 19. The tracker system in accordance with claim 17,wherein the processor is further programmed to determine an adjustedfirst angle to maximize an amount of irradiance to be collected by theplurality of trackers in the array.
 20. The tracker system in accordancewith claim 17, wherein the processor is further programmed to: determinea second position of the sun at a second specific point in time; executethe shadow model based on the plurality of relative tracker heights andthe second position of the sun; determine a second angle for the firsttracker based on the shadow model; collect an additional angle for eachtracker of the plurality of trackers; adjust the second angle based onexecuting the shadow model with the second angle and the plurality ofrelative tracker heights associated with the plurality of trackers; andtransmit instructions to the rotational mechanism to change the plane ofthe first tracker to the adjusted second angle.